package com.runjian.rundo.iot.agent.common.message;

import java.util.List;

import com.runjian.rundo.iot.agent.common.enums.DeviceMessageType;

/**
 * 通过协议解析后的设备消息
 *
 * @author LiGang
 */
public interface DeviceMessage {

    /**
     * 获取设备或网关标识
     *
     * @return 设备或网关标识
     */
    String getDeviceId();

    /**
     * 获取解码后的设备消息
     *
     * @return 解码后的设备消息
     */
    List<DecodedMessage> getDecodedMessages();

    /**
     * 添加解码消息
     *
     * @param decodedMessage 解码后的消息，携带设备具体的测量数据
     */
    void addDecodedMessages(DecodedMessage decodedMessage);

    /**
     * 获取消息类型
     *
     * @return DeviceMessageType
     */
    DeviceMessageType getType();

}
